package Array;

public class ArrayTest {
    public static void main(String[] args) {

        ArrayTest arrayTest = new ArrayTest();
        arrayTest.testArray();
        catArrayTest();
        ArrayTest.catArrayTest();
    }


    public void testArray() {
        //非静态方法调用非静态方法
        test();
        //创建一个int类型的数组
        //方式一
        Long[] arr = new Long[]{6L, 9L, 2L, 3L};
        for (long i : arr) {
            System.out.println(i);
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }

        //方式2声明 分配空间并赋值
        Float[] arr2 = {12.52F, 3.6F, 4F};
        System.out.println(arr2.length + " " + arr2[2]);


        //方式3 声明数组时指定数组元素个数,然后赋值,此时所有的元素值均为0
        int[] arr3 = new int[4];


        //方式4声明数组名 开辟空间,赋值
        int[] arr4;
        arr4 = new int[]{1, 2, 3, 4};


        //创建多维数组
        int[][] doubleArr1 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
        int m = 3, n = 4, q = 5;
        int[][] doubleArra2 = new int[m][n];
    }

    /**
     * 测试非静态方法调用非静态方法
     * 可以调用
     */
    public void test() {
        System.out.println("测试非静态方法调用非静态方法");
    }

    /**
     * 测试一个自定义类型的数组
     */

    public static void catArrayTest() {
        Cat[] catArr = new Cat[3];
        Cat cat1 = new Cat(2, "huahua");
        Cat cat2 = new Cat(3, "hua");
        catArr[0] = cat1;
        catArr[1] = cat2;
        for (Cat c : catArr) {
            if (c != null) {
                System.out.println("猫的年龄= " + c.getAge() + ",猫的名字= " + c.getName());
            }
        }

    }


}
